<html xmlns="http://www.w3.org/1999/xhtml" manifest="http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/foreign1.cacheManifest">
<head>
<title>Foreign test</title>

<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/dom/tests/mochitest/ajax/offline/offlineTests.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />

<script class="testbody" type="text/javascript">

/**
 * This test loads a manifest that contains as an explicit entry
 * foreign2.html page. After manifest is cached and presence of the
 * foreign2.html page is checked we redirect to foreign2.html
 * page. Then the test continues inside that page as follows:
 * On load of foreign2.html we check there is no associated cache
 * because the foreign2.html page was marked as FOREIGN in foreign1 cache.
 * After the foreign2 manifest is updated we check foreign2 cache is
 * chosen by foreign.html page.
 */

var win;

function manifestUpdated()
{
  var appCacheService = SpecialPowers.Cc["@mozilla.org/network/application-cache-service;1"]
    .getService(SpecialPowers.Ci.nsIApplicationCacheService);

  foreign1cache = appCacheService.chooseApplicationCache(
    "http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/foreign2.html", OfflineTest.loadContextInfo());

  OfflineTest.ok(foreign1cache, "foreign2.html chosen from foreign1 cache");
  OfflineTest.is(foreign1cache.manifestURI.asciiSpec, "http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/foreign1.cacheManifest")

  win = window.open("http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/foreign2.html");
}

function onDone() // called by the open window after stuff is finished
{
  win.close();
  OfflineTest.teardownAndFinish();
}

SimpleTest.waitForExplicitFinish();

if (OfflineTest.setup()) {
  applicationCache.onerror = OfflineTest.failEvent;
  applicationCache.onupdateready = OfflineTest.failEvent;
  applicationCache.onnoupdate = OfflineTest.failEvent;
  applicationCache.oncached = OfflineTest.priv(manifestUpdated);
}

</script>

</head>

<body>
</body>
</html>
